<?php

/**
 * @param $class
 */
function registerClass($class)
{
    $file_path = $class . '.php';

    /**
     * 如果上级目录不是tools,则替换掉tools命名空间,在引入文件
     */
    if (pathinfo(dirname(__DIR__), PATHINFO_BASENAME) != 'tools') {
        $file_path = str_replace('tools\\', '', $file_path);
    }

    /**
     * 兼容tp5下的目录结构,在logic中生成trans常量的信息,用到了生成好的constant类
     */
    if (preg_match('/app/', 'application')) {
        $file_path = preg_replace('/app/', 'application', $file_path);
    }

    if (is_file($file_path)) {
        include_once $file_path;
    } else {
        static $echo_num=0;
        if (!$echo_num){
            $echo_num=1;
            echo 'Waring,Not found:' . $file_path . "\n";
        }
    }
}

/**
 * 加载方法
 * @param string $dir
 */
function registerFunc($dir = '')
{
    $dir = $dir ?: __DIR__;

    $files = glob($dir . '/*');

    if ($files) {
        foreach ($files as $item) {
            $name = pathinfo($item, PATHINFO_BASENAME);
            if ($name != pathinfo(__FILE__, PATHINFO_BASENAME)) {
                include_once $name;
            }
        }
    }
}

/**
 * 自动注册类
 */
spl_autoload_register('registerClass');

/**
 * 注册方法
 */
registerFunc();
